BearZPY Blog

Hi, nice to meet you

BearZPY's avatar BearZPY

使用git clean清理工程文件

git clean

工程代码在编译的时候往往会生产很多的文件,在项目需要移动复制或者备份的时候这些文件是无用的,所以大部分 IDE 都提供了 clean 工程的功能, 但是有时候 IDE 提供的功能并不能满足我们的需求,所以往往需要使用其他的清理工具来完成我们的要求(例如编写 Windows 下的 clean bat 执行文件)。这里主要介绍使用 git clean 来给工程瘦身的方法。
使用情景:Android studio(2.2.3) 编译时在build文件夹下生成了几十 MB 的mockable-android-XX.jar。然而 AS 提供的 clean 并没有清除这些文件, 导致 clean 后的工程还是占用了很大的体积。

使用前提

项目需要使用 git 来管理,且重要的文件已经用 git 记录追踪。

命令介绍

git clean 用于清理 git 根目录下所有没有被 track 的文件和文件夹
使用 git clean -h 获取命令的帮助手册。
help document

常用参数介绍:

  1. -n 打印出需要清理的文件和文件夹(不会真的删除)
  2. -f 强制删除(并不是删除文件的意思)
  3. -d 删除整个文件夹(包括文件,-n 不会显示文件夹里面的文件)
  4. -x 对 .gitignore 文件中忽略的文件及文件夹进行清理(不加上-d参数的话只能清理文件)

注意事项

使用 git clean 清除时最好先加上 -n 参数查看清理的对象,如果清理文件夹的话,需要明确文件夹里是否有重要的文件数据,避免误删。
-f 是强制删除,可以在 -xd 删除失败的时候加上。
不希望删除的文件加入git管理(add,commit)就可以了。

使用示例

列举了清理 Android Studio 构建的 APP 项目 TodoList 所使用的指令输入和打印输出。

$ git clean -nd

help document

$ git clean -nx

help document

$ git clean -nxd

help document

$ git clean -xd

help document

$ git clean -fxd

help document